<html>
<body>

<h3>函数功能</h3>该函数返回一个对话框错误代码，此代码显示出在执行下列对话框函数时要出现的最近的错误：ChooseColor，GetOpenFileName，ChooseFont，GetSaveFileName，FindText，PrintDlg，ReplaceText，PageSetpDlg。<br>
<h3>函数原型</h3>DWORD CommDlgExtendedError（VOID）<br>
<h3>参数</h3>无。<br>
<h3>返回值</h3>如果最近一次对话框函数调用成功，返回值不确定，如果对话框函数因为用户关闭或取消对话框而返回FALSE，则返回值为零。否则返回值是非零错误代码。有关更多的信息，参见下列说明部分。<br>
备注：CommDlgExtendedError函数可以返回公共对话框函数中的一般的错误代码。<br>
另外，也返回某一具体公共对话框的错误代码。由CommDlgExtendedError返回的错误代码在CDERR.H文件里定义：<br>
下面是CommDlgExtendedError的返回错误代码值。<br>
CDERR_DIALOGFAILURE：对话框不能创建。DialogBox函数对对话框函数的调用失败，例如如果公共对话框的调用指定一个无效的窗口句柄，则此种错误产生。<br>
CDERR_FINDRESFAILURE：公共对话框函数没能找到指定资源。<br>
CDERR_INITIALIZATION：公共对话框函数在初始化过程中失败。当没有足够内存时此错误出现。<br>
CDERR_LOADRESFAILURE：公共对话框函数没能调出指定的资源。<br>
CDERR_LOADSTRFAILURE：公共对话框函数没能调出指定的串。<br>
CDERR_LOCKRESFAILURE：公共对话框函数没能销定指定的资源。<br>
CDERR_EMAILCOLFAILURE；公共对话框函数不能为内部结构分配内存。<br>
CDERR_NOHINSTANCE：在对应的公共对话框初始化结构Flags成员中设置ENABLETEMPLATE标志，但是在提供相应的事例句柄时出错。<br>
CDERR_NOHOOK：在对应的公共对话框初始化结构Flags成员中设置ENABLEHOOK标志，但是在提供相应的挂钩程序指针时出错。<br>
CDERR_NOTEMPLATE：在对应的公共对话框初始化结构Flag成员中设置ENABLETEMPLATE标志，但是在提供相应的模板时出错。<br>
CDERR_REGISTERMSGFAIL：当RegisterWindowMessage函数被公共对话框函数调用时，该函数返回错误代码。<br>
CDERR_STRUCTSIZE：对应的公共对话框初始化结构旧IStructSize成无效成员。<br>
下列为Print Dlg函数的返回值。<br>
PDERR_CREATEICFAILURE：当PrintDlg函数想创建一个信息表时出错。<br>
PDERR_DEFAIKTDFFERENT：利用在DEVNAMES结构中wDefault成员指定的DN_DEFAULTPRN标志，可以调用PrintDlg函数。但是被另外一个结构成员描述的打印机与当前缺省的打印机不匹配。（此错误发生在储存DEVNAMES结构和用户利用控制面板改变缺省打印机时）。要使用DEVNAMES结构所描述的缺省打印机，必须清空DN_DEFAULTPRN标志并且要再一次调用PrintDlg。要使用缺省打印机，必须用NULL取代DEVNAMES结构俐DEVMODE结构，如果此结构存在的话），并且要再一次调用PrintDlg函数。<br>
PDERR_DNDMMISMATCH：OEVMOOE和DEVNAMFS结构中的数据描述了两种不同的打印机。<br>
PDERR_GETDEVMODEFAIL；打印机驱动程序不能初始化一个DEVMODE结构（这种错误代码只用于Windows 3.0及以上版本的打印机驱动程序）。<br>
PDERR_INITFAILURE：PrintDlg函数不能初始化，并且没有更多的错误代码来描述此错误。<br>
PDERR_LOADDRVFAILURE：PrinDlg函数不能为指定的打印机装备设备驱动器。<br>
POERR_NODEFAULTPRN：不存在缺省打印机。<br>
POERR_NODEVKES：未发现打印机驱动程序。<br>
PDERR_PARAEFAILURE：PrintDlg函数在分析WIN.INI文件中的[devces]部分的字符串时出错。<br>
PDERR_PRINTERNOTFOUND；WIN.INI文件的[device]部分不包含所请求打印机的入口<br>
PDERR_RETDEFFAILURE_PD：RETURNDEFAULT标志被指定在PRINTDLG结构的Flags成员中。但hDevMode或hDevNames成员不是NULL。<br>
PDERR_SETUPFAILURE：PrintDlg函数在装载所需要的资源时出错。<br>
下面是ChooseFont函数的返回值。<br>
CFERR_MAXLESSTHANMIN：CHOOSEFONT结构中的nSizeMax成员所给定的大小小于nSizeMin成员给定的大小。<br>
CFERR_NOFONTS：不存在字体。<br>
下面是GetOpenFileName和GetSaveFileName函数的返回值。<br>
FNERR_BUFFERTOOSMALL：由OPENFILENAME结构的lpstrFile成员指向的缓冲区对由用户指定的文件名来说太小。前两种IpstrFile缓冲区的字节含有一个指定大小的整型值。用来存放全文件名。<br>
FNERR_INVAIDFILENAME：文件名无效。<br>
FNERR_SUBASSFAILIIRE：由于没有足够内存，在对列表框分类时出错。<br>
下面是FindText和ReplaceText函数的返回值。<br>
FRERR_BUFFERLENGTHZERO：结构FINDREPLACE中的一个成员指向一个无效的缓冲区。<br>
在Windows CE中Windows CE支持另外的四种返回值，如下：<br>
CDERR_REGISTRYFAILURE  公共对话框函数无法读注册表。<br>
下面的一些返回值只适用于PrintDlg函数。<br>
PDERR_NOPORTS：没有注册的端口PDERR_NOPRINTERS：没有注册的打印机<br>
PDERR_CREATEDCFAILURE：CreateDC调用失败<br>
Windows CE不支持CDERR_LOADSTRFAILURE、CDERR_MEMLOCKFAILURE或CDERR_REGISTERMSGFAIL返回值。Windows CE也不支持任何PDERR_错误值。<br>
<h3>速查</h3>Windows NT：3.1及以上版本；Windows：95及以上版本；Windows CE：1.0及以上版本：头文件：commdlg.h；库文件：comdlg32.lib。<br>

</body>
</html>
